package org.smr.ministore.service;

import org.smr.ministore.entities.GoodsType;
import org.blade.service.base.BaseService;
import org.blade.service.base.BaseBatchService;
import org.blade.service.base.PaginationQueryService;
import org.smr.ministore.entities.vo.Assign2OrgansVO;

import java.util.List;

/**
 * @author blade
 *
 */
public interface GoodsTypeService extends BaseService<Long, GoodsType>,
                                        BaseBatchService<Long, GoodsType>,
                                        PaginationQueryService<Long, GoodsType> {


    /**
     * 获取商品类形树
     * @param goodsType
     * @return
     */
    List<GoodsType> getGoodsTypeTree(GoodsType goodsType);

    /**
     * 安全删除
     *
     * @param id
     * @return
     */
    public int deleteByIdLogical(Long id);

    /**
     * 安全删除
     *
     * @param id 删除条件
     * @return int 大于等于0 表示影响记录数，小于0 表示业务状态码
     */
    int removeById(GoodsType id);

    /**
     * 指派给组织
     *
     * @param assign2Organs 指派的任务
     * @return
     */
    int assignToOrgans(Assign2OrgansVO assign2Organs);

}
